#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	int *p = NULL;
	int n = 0;
	int i;

	n = 10;
	// p = (int *)malloc(sizeof(int) * n);
	p = calloc(n, sizeof(int));
	for (i = 0; i < n; i++) {
		p[i] = i + 1;
	}

	// 空间不够用
	n = 100;
	p = (int *)realloc(p, n * sizeof(int));
	for (i = 0; i < 100; i++) {
		printf("%d ", p[i]);
	}
	printf("\n");

	// 不使用后记得释放空间
	free(p);
	// 注意!!!!!!!!!!!!!，释放空间后，原指针不会改变指向的位置，需要手动将指针指向NULL
	p = NULL; // 隐藏优势,当重复释放 free(p)如果p是NULL,不做任何操作

	return 0;
}


